/************************************************************************
* Programmer:  Philippe Gambling
*
* Course:  CSCI 4534
*
* Date:  February 20, 2009
*
* Environment:  GCC 3.2.2 running on diamond.rocks.uhcl.edu
*
* Files Included: node.h, node.c
*
* Purpose:  Defines a simple generic node structure for a linked list
*
***********************************************************************/ 

#ifndef _NODE_H
#define _NODE_H

/*
  Defines a node in a linked list
*/  
/*
  Node data attributes
  **** Naming conventions ****
  * _ = "private" variables
  * p = pointer
  * i = integer
  * Capital = Public
  ****************************
  NextPtr - Pointer to the next node.
  _pdata - Pointer to node's data.
  
*/

typedef struct node
{
  struct node *NextPtr; /* This is allowed to be Public */
  void *_pdata;
} * Node;

/* Public Interfaces for Node */
Node new_Node(size_t, const void *);
void free_Node(Node);
void Node_CopyData(const Node,void *,size_t);

#endif
